$(function(){
    
    var estados = 
        $.ajax({
            url: 'intranet/cliente/estados',
            datatype: "json",
            async: false,
            success: function(resultado){
                if (!resultado)
                    alert('Não foi possível carregar os estados');
                }
        }).responseText;
    
    
    jQuery("#gridCliente").jqGrid({
        caption: "Cliente",
        url: "intranet/cliente/lista",
        editurl: "intranet/cliente/crud",
	datatype: "json",
	colNames:['Nome Completo', 'Nome Abreviado', 'E-mail', 'Cidade', 'UF', 
            'Tipo do Cliente', 'Mensagem', 'Responsável pelo cliente', 'Registro do responsável',
            'Última solicitação', 'Última remessa', 'Ações'],
	colModel:[
            {name:'nomeCompleto', index:'nomeCompleto', hidden:true, 
                editable:true, editrules:{required:true, edithidden: true},
                editoptions:{size: 50, maxlength: 100},
                formoptions:{elmsuffix:' *'}},
            {name:'nomeCurto', index:'nomeCurto', width:250, align:"center", 
                editable:true, editrules:{required:true},
                editoptions:{size: 50, maxlength: 50},
                formoptions:{elmsuffix:' *'}},
            {name:'email', index:'email', width:150, align:"center", search: false,
                editable:true, editrules:{required:true, email:true},
                formoptions:{elmsuffix:' *'}},
            {name:'cidade', index:'cidade', hidden:true, 
                editable:true, editrules:{required:true, edithidden: true},
                editoptions:{size: 50, maxlength: 100},
                formoptions:{elmsuffix:' *'}},
            {name:'estado', index:'estado', hidden:true, 
                editable:true, editrules:{required:true, edithidden:true},
                edittype:'select',
                formoptions:{elmsuffix:' *'}},
            {name:'tipoCliente', index:'tipoCliente', width:250, align:"center", 
                editable:true, editrules:{required:true},
                edittype:"select",
                editoptions: {value:'B:BANCO DE SANGUE;L:LABORATÓRIO'},
                formoptions:{elmsuffix:' *'}},
            {name:'mensagem', index:'mensagem', hidden:true, 
                editable:true, editrules:{edithidden: true},
                edittype:'textarea',
                editoptions:{rows:"2",cols:"48"}},
            {name:'nomResponsavel', index:'nomResponsavel', width:150, align:"center", search: false, 
                editable:true, editrules:{required:true},
                editoptions:{size: 50, maxlength: 100},
                formoptions:{elmsuffix:' *'}},
            {name:'crResponsavel', index:'crResponsavel', hidden:true, 
                editable:true, editrules:{edithidden: true},
                editoptions:{size: 50, maxlength: 50}},
            {name:'maxSolicitacao', index:'maxSolicitacao', hidden:true},
            {name:'maxRemessa', index:'maxRemessa', hidden:true},
            {name:'acoes',index:'acoes', width:90, align:"center", sortable:false, search: false}
	],
        loadComplete: function(){
            $('#gridCliente').setColProp('estado', {editoptions: {value: estados}});
        },
	//rowNum: 10,
	//rowList: [10,20,30,50,100],
	width: 900,
	height: 200,
	pager: '#navCliente',
	sortname: "nomeCompleto",
	sortorder: "ASC",
	multiselect: false,
	viewrecords: true,
        scroll:true,
        loadonce:true,
        ignoreCase:true,
        toolbar: [true,"top"],
	gridComplete: function(){
            var ids = jQuery("#gridCliente").jqGrid('getDataIDs');				
            for(var i=0; i < ids.length; i++){
                var cl = ids[i];
                be = '<img class="btnAlterar" rel="'+cl+'" src="public/images/pencil.png" title="Alterar" style="cursor:pointer; margin:2px" />';
                se = '<img class="btnVisualizar" rel="'+cl+'" src="public/images/lupa.png" title="Visualizar" style="cursor:pointer; margin:2px" />';
                ce = '<img class="btnDeletar" rel="'+cl+'" src="public/images/cross.png" title="Deletar" style="cursor:pointer; margin:2px" />';
                jQuery("#gridCliente").jqGrid('setRowData',ids[i],{acoes:be+ce+se});
            }
            $('.btnAlterar').click(function(){
                var idCliente = $(this).attr('rel');
                jQuery('#gridCliente').jqGrid('editGridRow',idCliente, {width:590, savekey:[true,13], checkOnSubmit:true,
                    closeAfterEdit:true, viewPagerButtons:false, bottominfo:"Os campos marcados com (*) são obrigatórios",
                    afterComplete: function(resposta){
                        var resultado = resposta.responseText;
                        if(resultado == 1){
                            alert('Operação realizada com sucesso.');
                            intranet.carregaModulo('intranet/cliente/');
                        }else if(resultado == 2){
                            alert('Não foi possível realizar a operação.\nJá existe cliente cadastrado com este nome e/ou email.')
                            intranet.carregaModulo('intranet/cliente/');
                        }else{
                            alert('Não foi possível realizar a operação.');
                        }
                    }
                });
            });
            $('.btnVisualizar').click(function(){
                var idCliente = $(this).attr('rel');
                jQuery('#gridCliente').jqGrid('viewGridRow',idCliente,{width:590, viewPagerButtons:false,
                    beforeShowForm: function(formid){
                        $('#trv_maxSolicitacao', formid).show();
                        $('#trv_maxRemessa', formid).show();
                        $('#trv_acoes', formid).hide();
                    }  
            });
            });
            $('.btnDeletar').click(function(){
                var idCliente = $(this).attr('rel');
                jQuery('#gridCliente').jqGrid('delGridRow',idCliente, { msg:"Apagar registro selecionado?",
                    afterComplete: function(resposta){
                        var resultado = resposta.responseText;
                        if(resultado == 1){
                            alert('Operação realizada com sucesso.');
                        }else{
                            alert('Não foi possível realizar a operação.');
                        }
                    }
                });
            });
        }
     }).navGrid("#navCliente",{
            edit: false,
            add: false,
            del: false,
            search: false,
            view: false,
            refresh: false,
            pdf: true,
            excel: true
    });
});

$("#t_gridCliente").append("<input type='image' src='public/images/adicionar.png' align='right' style='height:20px;font-size:-3'/>");
$("input","#t_gridCliente").click(function(){
    jQuery("#gridCliente").jqGrid('editGridRow',"new",{width:590, savekey:[true,13],
        bottominfo: "Os campos marcados com (*) são obrigatórios",
        afterComplete: function(resposta){
            var resultado = resposta.responseText;
            if(resultado == 1){
                alert('Operação realizada com sucesso.');
                intranet.carregaModulo('intranet/cliente/');
            }else if(resultado == 2){
                alert('Não foi possível realizar a operação.\nJá existe cliente cadastrado com este nome e/ou email.')
                intranet.carregaModulo('intranet/cliente/');
            }else{
                alert('Não foi possível realizar a operação.');
            }
        }
    });
});
jQuery("#gridCliente").jqGrid('filterToolbar',{stringResult:true, searchOnEnter:false});